import { IPSControlItem } from '../ipscontrol-item';
import { IPSChartObject } from './ipschart-object';
import { IPSLanguageRes } from '../../res/ipslanguage-res';
import { IPSSysPFPlugin } from '../../res/ipssys-pfplugin';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSChartAxis
 */
export interface IPSChartAxis extends IPSChartObject, IPSControlItem {
  /**
   * 基础配置Json内容
   * @type {string}
   */
  baseOptionJOString: string;

  /**
   * 标题语言资源
   *
   * @type {IPSLanguageRes}
   */
  getCapPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 标题语言资源
   *
   * @type {IPSLanguageRes}
   */
  get capPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 标题语言资源（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getCapPSLanguageResMust(): IPSLanguageRes;

  /**
   * 标题
   * @type {string}
   */
  caption: string;

  /**
   * 数据显示模式
   * @description 值模式 [图表坐标轴数据显示方式] {0：未定义、 1：纵、 2：横、 3：斜 }
   * @type {( number | 0 | 1 | 2 | 3)}
   * @default 0
   */
  dataShowMode: number | 0 | 1 | 2 | 3;

  /**
   * ECharts位置
   * @type {string}
   */
  eChartsPos: string;

  /**
   * ECharts类型
   * @type {string}
   */
  eChartsType: string;

  /**
   * 最大值
   * @type {number}
   */
  maxValue: number;

  /**
   * 最小值
   * @type {number}
   */
  minValue: number;

  /**
   * 前端扩展插件
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 前端扩展插件
   *
   * @type {IPSSysPFPlugin}
   */
  get psSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 前端扩展插件（必须存在）
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPluginMust(): IPSSysPFPlugin;

  /**
   * 位置
   * @description 值模式 [图表坐标轴位置] {left：左侧、 bottom：下方、 right：右侧、 top：上方、 radial：径向轴(Radial)、 angular：角度轴(Angular) }
   * @type {( string | 'left' | 'bottom' | 'right' | 'top' | 'radial' | 'angular')}
   */
  position: string | 'left' | 'bottom' | 'right' | 'top' | 'radial' | 'angular';

  /**
   * 类型
   * @description 值模式 [图表坐标轴类型] {numeric：数值、 time：时间、 category：分类、 log：对数轴 }
   * @type {( string | 'numeric' | 'time' | 'category' | 'log')}
   */
  type: string | 'numeric' | 'time' | 'category' | 'log';
}
